Kod startowy

Do tej pory kod pisaliśmy "od zera" jednak teraz znacznie przyśpieszymy proces tworzenia bota poprzez użycie kodu z dokumentacji biblioteki Discord.py

Czym jest async i await?

W kodzie pojawia się czasem słówko async i await, którego nie było wcześniej. To jest wprowadzenie konceptu kodu asynchronicznego. W dużym uproszczeniu dzięki temu python może wykonywać wiele czynności jednocześnie. Słówko await sprawia, że python "czeka" na wykonanie danej linijki. Jest to dość zawiły koncept na start. W przyszłości wgłebimy się w niego nieco bardziej

Kod startowy

import discord

class MyClient(discord.Client):
    async def on_ready(self):
        print(f'Zalogowano jako {self.user}!')

    async def on_message(self, message):
        print(f'Wiadomość od {message.author}: {message.content}')

intents = discord.Intents.default()
intents.message_content = True


client = MyClient(intents=intents)
client.run('TWÓJ TOKEN')

Dużo się dzieje na start. Wytłumaczmy to linijka po linijce

import discord

tutaj importujemy bibliotekę discord, którą pobraliśmy wcześniej poprzez pip

class MyClient(discord.Client):

w tym momencie tworzymy klasę MyClient, która dziedziczy po wbudowanej klasie biblioteki discord.Client. Dzięki temu, nasza klasa MyClient przejmuje wszystkie właściwości i metody, które są nam potrzebne do pisania bota

async def on_ready(self):
        print(f'Zalogowano jako {self.user}!')

Metoda on_ready wykonuje się tylko raz, kiedy bot zaloguje się do discorda. Aktualnie wyświetla ona tylko w konsoli informację o tym wraz z nazwą użytkownika naszego bota (właściwość self.user)

async def on_message(self, message):
        print(f'Wiadomość od {message.author}: {message.content}')

Metoda on_message wykonuje się za każdym razem, kiedy ktoś napisze wiadomość na kanale tekstowym. Oprócz self posiada ona argument message, który przechowuje wiadomość, po której wykonała się funkcja. W tym momencie funkcja wyświetla w konsoli tylko jej autora (message.author) oraz jej treść (message.content). Ta metoda na start będzie metodą, w której będziemy pisać większość kodu

intents = discord.Intents.default()
intents.message_content = True

client = MyClient(intents=intents)

W tym momencie nadajemy naszemu botowi uprawnienia do czytania i wysyłania wiadomości oraz tworzymy obiekt naszej klasy MyClient o nazwie client i podajemy mu w argumencie te uprawnienia

client.run('TWÓJ TOKEN')

Na koniec uruchamiamy naszego bota. Musimy mu podać token, który wcześniej wzieliśmy ze strony Discord Developer Portal